/* eslint-disable */
// @ts-ignore

export type FileUploadUsingPostBody = {
  file: string;
};

export type FileUploadUsingPostResponses = {
  /**
   * OK
   */
  200: ResultString;
};

export type FriendAddUsingPostParams = {
  friendId: number;
};

export type FriendAddUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type FriendFindFriendIdUsingGetParams = {
  friendId: number;
};

export type FriendFindFriendIdUsingGetResponses = {
  /**
   * OK
   */
  200: ResultFriendVO;
};

export type FriendListUsingGetResponses = {
  /**
   * OK
   */
  200: ResultListFriendVO;
};

export type FriendOpenApiDeleteFriendIdUsingDeleteParams = {
  friendId: number;
};

export type FriendOpenApiDeleteFriendIdUsingDeleteResponses = {
  /**
   * OK
   */
  200: Result;
};

export type FriendVO = {
  /** 好友id */
  id: number;
  /** 好友昵称 */
  nickName: string;
  /** 好友头像 */
  headImage?: string;
  /** 是否已删除 */
  deleted?: boolean;
};

export type GroupCreateUsingPostResponses = {
  /**
   * OK
   */
  200: ResultGroupVO;
};

export type GroupFindGroupIdUsingGetParams = {
  groupId: number;
};

export type GroupFindGroupIdUsingGetResponses = {
  /**
   * OK
   */
  200: ResultGroupVO;
};

export type GroupInviteDTO = {
  /** 群id */
  groupId: number;
  /** 好友id列表不可为空 */
  friendIds: number[];
};

export type GroupInviteUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type GroupKickGroupIdUsingDeleteParams = {
  groupId: number;
  userId: number;
};

export type GroupKickGroupIdUsingDeleteResponses = {
  /**
   * OK
   */
  200: Result;
};

export type GroupListUsingGetResponses = {
  /**
   * OK
   */
  200: ResultListGroupVO;
};

export type GroupMemberRemoveDTO = {
  /** 群组id */
  groupId: number;
  /** 成员用户id */
  userIds: number[];
};

export type GroupMembersGroupIdUsingGetParams = {
  groupId: number;
};

export type GroupMembersGroupIdUsingGetResponses = {
  /**
   * OK
   */
  200: ResultListGroupMemberVO;
};

export type GroupMembersRemoveUsingDeleteResponses = {
  /**
   * OK
   */
  200: Result;
};

export type GroupMemberVO = {
  /** 用户id */
  userId?: number;
  /** 群内显示名称 */
  showNickName?: string;
  /** 群内昵称备注 */
  remarkNickName?: string;
  /** 头像 */
  headImage?: string;
  /** 是否已退出 */
  quit?: boolean;
  /** 是否在线 */
  online?: boolean;
  /** 群名显示名称 */
  showGroupName?: string;
  /** 群名备注 */
  remarkGroupName?: string;
};

export type GroupMessageDTO = {
  /** 群聊id */
  groupId: number;
  /** 发送内容 */
  content: string;
  /** 消息类型 0:文字 1:图片 2:文件 3:语音 4:视频 */
  type: number;
  /** 是否回执消息 */
  receipt?: boolean;
  /** 被@用户列表 */
  atUserIds?: number[];
};

export type GroupMessageVO = {
  /** 消息id */
  id?: number;
  /** 群聊id */
  groupId?: number;
  /**  发送者id */
  sendId?: number;
  /**  发送者昵称 */
  sendNickName?: string;
  /** 消息内容 */
  content?: string;
  /** 消息内容类型 具体枚举值由应用层定义 */
  type?: number;
  /** 是否回执消息 */
  receipt?: boolean;
  /** 回执消息是否完成 */
  receiptOk?: boolean;
  /** 已读消息数量 */
  readedCount?: number;
  /** @用户列表 */
  atUserIds?: number[];
  /**  状态 */
  status?: number;
  /** 发送时间 */
  sendTime?: string;
};

export type GroupModifyUsingPutResponses = {
  /**
   * OK
   */
  200: ResultGroupVO;
};

export type GroupOpenApiDeleteGroupIdUsingDeleteParams = {
  groupId: number;
};

export type GroupOpenApiDeleteGroupIdUsingDeleteResponses = {
  /**
   * OK
   */
  200: Result;
};

export type GroupQuitGroupIdUsingDeleteParams = {
  groupId: number;
};

export type GroupQuitGroupIdUsingDeleteResponses = {
  /**
   * OK
   */
  200: Result;
};

export type GroupVO = {
  /** 群id */
  id?: number;
  /** 群名称 */
  name: string;
  /** 群主id */
  ownerId?: number;
  /** 头像 */
  headImage?: string;
  /** 头像缩略图 */
  headImageThumb?: string;
  /** 群公告 */
  notice?: string;
  /** 用户在群显示昵称 */
  remarkNickName?: string;
  /** 群内显示名称 */
  showNickName?: string;
  /** 群名显示名称 */
  showGroupName?: string;
  /** 群名备注 */
  remarkGroupName?: string;
  /** 是否已解散 */
  dissolve?: boolean;
  /** 是否已退出 */
  quit?: boolean;
  /** 账号是否被封禁 */
  isBanned?: boolean;
  /** 被封禁原因 */
  reason?: string;
};

export type ICEServer = {
  urls?: string;
  username?: string;
  credential?: string;
};

export type ImageUploadUsingPostBody = {
  file: string;
};

export type ImageUploadUsingPostParams = {
  isPermanent?: boolean;
};

export type ImageUploadUsingPostResponses = {
  /**
   * OK
   */
  200: ResultUploadImageVO;
};

export type LoginDTO = {
  /** 登录终端 0:web 1:app 2:pc */
  terminal: number;
  /** 用户名 */
  userName: string;
  /** 用户密码 */
  password: string;
};

export type LoginUsingPostResponses = {
  /**
   * OK
   */
  200: ResultLoginVO;
};

export type LoginVO = {
  /** 每次请求都必须在header中携带accessToken */
  accessToken?: string;
  /** accessToken过期时间(秒) */
  accessTokenExpiresIn?: number;
  /** accessToken过期后，通过refreshToken换取新的token */
  refreshToken?: string;
  /** refreshToken过期时间(秒) */
  refreshTokenExpiresIn?: number;
};

export type MessageGroupFindReadedUsersUsingGetParams = {
  groupId: number;
  messageId: number;
};

export type MessageGroupFindReadedUsersUsingGetResponses = {
  /**
   * OK
   */
  200: ResultListLong;
};

export type MessageGroupHistoryUsingGetParams = {
  groupId: number;
  page: number;
  size: number;
};

export type MessageGroupHistoryUsingGetResponses = {
  /**
   * OK
   */
  200: ResultListGroupMessageVO;
};

export type MessageGroupPullOfflineMessageUsingGetParams = {
  minId: number;
};

export type MessageGroupPullOfflineMessageUsingGetResponses = {
  /**
   * OK
   */
  200: Result;
};

export type MessageGroupReadedUsingPutParams = {
  groupId: number;
};

export type MessageGroupReadedUsingPutResponses = {
  /**
   * OK
   */
  200: Result;
};

export type MessageGroupRecallIdUsingDeleteParams = {
  id: number;
};

export type MessageGroupRecallIdUsingDeleteResponses = {
  /**
   * OK
   */
  200: ResultGroupMessageVO;
};

export type MessageGroupSendUsingPostResponses = {
  /**
   * OK
   */
  200: ResultGroupMessageVO;
};

export type MessagePrivateHistoryUsingGetParams = {
  friendId: number;
  page: number;
  size: number;
};

export type MessagePrivateHistoryUsingGetResponses = {
  /**
   * OK
   */
  200: ResultListPrivateMessageVO;
};

export type MessagePrivateMaxReadedIdUsingGetParams = {
  friendId: number;
};

export type MessagePrivateMaxReadedIdUsingGetResponses = {
  /**
   * OK
   */
  200: ResultLong;
};

export type MessagePrivatePullOfflineMessageUsingGetParams = {
  minId: number;
};

export type MessagePrivatePullOfflineMessageUsingGetResponses = {
  /**
   * OK
   */
  200: Result;
};

export type MessagePrivateReadedUsingPutParams = {
  friendId: number;
};

export type MessagePrivateReadedUsingPutResponses = {
  /**
   * OK
   */
  200: Result;
};

export type MessagePrivateRecallIdUsingDeleteParams = {
  id: number;
};

export type MessagePrivateRecallIdUsingDeleteResponses = {
  /**
   * OK
   */
  200: ResultPrivateMessageVO;
};

export type MessagePrivateSendUsingPostResponses = {
  /**
   * OK
   */
  200: ResultPrivateMessageVO;
};

export type ModifyPwdDTO = {
  /** 旧用户密码 */
  oldPassword: string;
  /** 新用户密码 */
  newPassword: string;
};

export type ModifyPwdUsingPutResponses = {
  /**
   * OK
   */
  200: Result;
};

export type OnlineTerminalVO = {
  /** 用户id */
  userId?: number;
  /** 在线终端类型 */
  terminals?: number[];
};

export type PrivateMessageDTO = {
  /** 接收用户id */
  recvId: number;
  /** 发送内容 */
  content: string;
  /** 消息类型 0:文字 1:图片 2:文件 3:语音 4:视频 */
  type: number;
};

export type PrivateMessageVO = {
  /**  消息id */
  id?: number;
  /**  发送者id */
  sendId?: number;
  /**  接收者id */
  recvId?: number;
  /**  发送内容 */
  content?: string;
  /** 消息内容类型 MessageType */
  type?: number;
  /**  状态 */
  status?: number;
  /**  发送时间 */
  sendTime?: string;
};

export type RefreshTokenUsingPutResponses = {
  /**
   * OK
   */
  200: Result;
};

export type RegisterDTO = {
  /** 用户名 */
  userName: string;
  /** 用户密码 */
  password: string;
  /** 用户昵称 */
  nickName: string;
  /** 唯一标识 */
  uuid: string;
  /** 手机号 */
  tel?: string;
  /** userId */
  userId: number;
};

export type RegisterUsingPostResponses = {
  /**
   * OK
   */
  200: ResultLong;
};

export type Result = {
  code?: number;
  message?: string;
  data?: Record<string, unknown>;
};

export type ResultFriendVO = {
  code?: number;
  message?: string;
  data?: FriendVO;
};

export type ResultGroupMessageVO = {
  code?: number;
  message?: string;
  data?: GroupMessageVO;
};

export type ResultGroupVO = {
  code?: number;
  message?: string;
  data?: GroupVO;
};

export type ResultInteger = {
  code?: number;
  message?: string;
  data?: number;
};

export type ResultListFriendVO = {
  code?: number;
  message?: string;
  data?: FriendVO[];
};

export type ResultListGroupMemberVO = {
  code?: number;
  message?: string;
  data?: GroupMemberVO[];
};

export type ResultListGroupMessageVO = {
  code?: number;
  message?: string;
  data?: GroupMessageVO[];
};

export type ResultListGroupVO = {
  code?: number;
  message?: string;
  data?: GroupVO[];
};

export type ResultListLong = {
  code?: number;
  message?: string;
  data?: number[];
};

export type ResultListOnlineTerminalVO = {
  code?: number;
  message?: string;
  data?: OnlineTerminalVO[];
};

export type ResultListPrivateMessageVO = {
  code?: number;
  message?: string;
  data?: PrivateMessageVO[];
};

export type ResultListUserVO = {
  code?: number;
  message?: string;
  data?: UserVO[];
};

export type ResultLoginVO = {
  code?: number;
  message?: string;
  data?: LoginVO;
};

export type ResultLong = {
  code?: number;
  message?: string;
  data?: number;
};

export type ResultPrivateMessageVO = {
  code?: number;
  message?: string;
  data?: PrivateMessageVO;
};

export type ResultString = {
  code?: number;
  message?: string;
  data?: string;
};

export type ResultSystemConfigVO = {
  code?: number;
  message?: string;
  data?: SystemConfigVO;
};

export type ResultUploadImageVO = {
  code?: number;
  message?: string;
  data?: UploadImageVO;
};

export type ResultUser = {
  code?: number;
  message?: string;
  data?: User;
};

export type ResultUserVO = {
  code?: number;
  message?: string;
  data?: UserVO;
};

export type ResultUserVO2 = {
  code?: number;
  message?: string;
  data?: UserVO2;
};

export type SystemConfigUsingGetResponses = {
  /**
   * OK
   */
  200: ResultSystemConfigVO;
};

export type SystemConfigVO = {
  webrtc?: WebrtcConfig;
};

export type UploadImageVO = {
  /** 原图 */
  originUrl?: string;
  /** 缩略图 */
  thumbUrl?: string;
};

export type User = {
  id?: number;
  userName?: string;
  nickName?: string;
  headImage?: string;
  headImageThumb?: string;
  password?: string;
  sex?: number;
  userId?: number;
  signature?: string;
  uuid?: string;
  isBanned?: boolean;
  reason?: string;
  tel?: string;
  lastLoginTime?: string;
  createdTime?: string;
  type?: number;
};

export type UserDelUserUuidUsingDeleteParams = {
  uuid: string;
};

export type UserDelUserUuidUsingDeleteResponses = {
  /**
   * OK
   */
  200: ResultInteger;
};

export type UserFindByNameUsingGetParams = {
  name: string;
};

export type UserFindByNameUsingGetResponses = {
  /**
   * OK
   */
  200: ResultListUserVO;
};

export type UserFindIdUsingGetParams = {
  id: number;
};

export type UserFindIdUsingGetResponses = {
  /**
   * OK
   */
  200: ResultUserVO;
};

export type UserFindUserInformUsingGetParams = {
  name: string;
};

export type UserFindUserInformUsingGetResponses = {
  /**
   * OK
   */
  200: ResultUser;
};

export type UserFindUserUuidUsingGetParams = {
  uuid: string;
};

export type UserFindUserUuidUsingGetResponses = {
  /**
   * OK
   */
  200: ResultUserVO2;
};

export type UserSelfUsingGetResponses = {
  /**
   * OK
   */
  200: ResultUserVO;
};

export type UserTerminalOnlineUsingGetParams = {
  userIds: string;
};

export type UserTerminalOnlineUsingGetResponses = {
  /**
   * OK
   */
  200: ResultListOnlineTerminalVO;
};

export type UserUpdateUsingPutResponses = {
  /**
   * OK
   */
  200: Result;
};

export type UserVO = {
  /** id */
  id: number;
  /** 用户名 */
  userName?: string;
  /** 用户昵称 */
  nickName: string;
  /** 性别 */
  sex?: number;
  /** 用户类型 1:普通用户 2:审核账户 */
  type?: number;
  /** 个性签名 */
  signature?: string;
  /** 头像 */
  headImage?: string;
  /** 头像缩略图 */
  headImageThumb?: string;
  /** 是否在线 */
  online?: boolean;
  /** 账号是否被封禁 */
  isBanned?: boolean;
  /** 被封禁原因 */
  reason?: string;
  /** uuid */
  uuid?: string;
  /** 手机号 */
  tel?: string;
};

export type UserVO2 = {
  /** id */
  id: number;
  /** 用户昵称 */
  nickName: string;
};

export type WebrtcConfig = {
  maxChannel?: number;
  iceServers?: ICEServer[];
};

export type WebrtcPrivateAcceptUsingPostBody = string;

export type WebrtcPrivateAcceptUsingPostParams = {
  uid: number;
};

export type WebrtcPrivateAcceptUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type WebrtcPrivateCallUsingPostBody = string;

export type WebrtcPrivateCallUsingPostParams = {
  uid: number;
  mode?: string;
};

export type WebrtcPrivateCallUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type WebrtcPrivateCancelUsingPostParams = {
  uid: number;
};

export type WebrtcPrivateCancelUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type WebrtcPrivateCandidateUsingPostBody = string;

export type WebrtcPrivateCandidateUsingPostParams = {
  uid: number;
};

export type WebrtcPrivateCandidateUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type WebrtcPrivateFailedUsingPostParams = {
  uid: number;
  reason: string;
};

export type WebrtcPrivateFailedUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type WebrtcPrivateHandupUsingPostParams = {
  uid: number;
};

export type WebrtcPrivateHandupUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type WebrtcPrivateHeartbeatUsingPostParams = {
  uid: number;
};

export type WebrtcPrivateHeartbeatUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};

export type WebrtcPrivateRejectUsingPostParams = {
  uid: number;
};

export type WebrtcPrivateRejectUsingPostResponses = {
  /**
   * OK
   */
  200: Result;
};
